home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Reference / DevCon / Orlando_1993 / Devcon93.4 / CAMD / examples / trans / trans_events.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-12  |  7.8 KB  |  260 lines

  1.  
  2. /* Events source file */
  3.  
  4. #include <exec/types.h>
  5. #include <intuition/intuition.h>
  6. #include <libraries/asl.h>
  7.  
  8. #include <clib/exec_protos.h>
  9. #include <clib/intuition_protos.h>
  10. #include <clib/gadtools_protos.h>
  11.  
  12. #include <pragmas/exec_pragmas.h>
  13. #include <pragmas/intuition_pragmas.h>
  14. #include <pragmas/gadtools_pragmas.h>
  15.  
  16. #include "trans.h"
  17.  
  18. BOOL EventFunc_SETCONDU(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  19. BOOL EventFunc_ABOUT(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  20. BOOL EventFunc_QUIT(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  21. BOOL EventFunc_REW(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  22. BOOL EventFunc_CLOCK(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  23. BOOL EventFunc_PLAY(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  24. BOOL EventFunc_FF(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  25. BOOL EventFunc_STOP(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  26. BOOL EventFunc_PAUSE(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  27. BOOL EventFunc_CLIST(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  28. BOOL EventFunc_NEWCON(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  29. BOOL EventFunc_SELECT(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  30. BOOL EventFunc_CANCEL(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  31.  
  32. BOOL EventFunc_RESETTOZ(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  33. BOOL EventFunc_NTSCNOND(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  34. BOOL EventFunc_NTSCDROP(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  35. BOOL EventFunc_PAL25FPS(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  36. BOOL EventFunc_FILM24FP(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  37. BOOL EventFunc_POSITIVE(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  38. BOOL EventFunc_WAIT(struct TMData *, struct IntuiMessage *, TMOBJECTDATA *);
  39.  
  40. TMOBJECTDATA tmobjectdata_SETCONDU = { EventFunc_SETCONDU };
  41. TMOBJECTDATA tmobjectdata_ABOUT = { EventFunc_ABOUT };
  42. TMOBJECTDATA tmobjectdata_QUIT = { EventFunc_QUIT };
  43.  
  44. TMOBJECTDATA tmobjectdata_REW = { EventFunc_REW };
  45. TMOBJECTDATA tmobjectdata_CLOCK = { EventFunc_CLOCK };
  46. TMOBJECTDATA tmobjectdata_PLAY = { EventFunc_PLAY };
  47. TMOBJECTDATA tmobjectdata_FF = { EventFunc_FF };
  48. TMOBJECTDATA tmobjectdata_STOP = { EventFunc_STOP };
  49. TMOBJECTDATA tmobjectdata_PAUSE = { EventFunc_PAUSE };
  50. TMOBJECTDATA tmobjectdata_CLIST = { EventFunc_CLIST };
  51. TMOBJECTDATA tmobjectdata_NEWCON = { EventFunc_NEWCON };
  52. TMOBJECTDATA tmobjectdata_SELECT = { EventFunc_SELECT };
  53. TMOBJECTDATA tmobjectdata_CANCEL = { EventFunc_CANCEL };
  54.  
  55. TMOBJECTDATA tmobjectdata_RESETTOZ = { EventFunc_RESETTOZ };
  56. TMOBJECTDATA tmobjectdata_NTSCNOND = { EventFunc_NTSCNOND };
  57. TMOBJECTDATA tmobjectdata_NTSCDROP = { EventFunc_NTSCDROP };
  58. TMOBJECTDATA tmobjectdata_PAL25FPS = { EventFunc_PAL25FPS };
  59. TMOBJECTDATA tmobjectdata_FILM24FP = { EventFunc_FILM24FP };
  60. TMOBJECTDATA tmobjectdata_POSITIVE = { EventFunc_POSITIVE };
  61. TMOBJECTDATA tmobjectdata_WAIT = { EventFunc_WAIT };
  62.  
  63. extern LONG                current_time;
  64.  
  65. extern WORD                drag_state,
  66.                         drag_delay,
  67.                         drag_accum;
  68.  
  69. UWORD __chip BlankPointer[36] =
  70.   {
  71.   0x0000, 0x0000,
  72.   0x0000, 0x0000,
  73.   };
  74.  
  75. BOOL EventFunc_SETCONDU(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  76.   {
  77.  
  78.   if(!(OpenWindow_SELECTCO(TMData)))
  79.     {
  80.     TM_Request(NULL, (UBYTE *)TEXT_ERROR, (UBYTE *)TEXT_NOWINDOW, (UBYTE *)TEXT_ABORT, NULL, NULL);
  81.     cleanexit(TMData, RETURN_FAIL);
  82.     }
  83.     else
  84.       DisableWindow_TRANSP(TMData);
  85.  
  86.   return(FALSE);
  87.   }
  88.  
  89. BOOL EventFunc_ABOUT(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  90.   {
  91.  
  92.   TM_Request(imsg->IDCMPWindow, "Program Information",
  93.               "Conductor Controller\n©1992 Sylvan Tecnical Arts\nWritten By Talin",
  94.               "Continue", NULL, NULL);
  95.  
  96.   return(FALSE);
  97.   }
  98.  
  99. BOOL EventFunc_QUIT(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  100.   {
  101.   return(TRUE);
  102.   }
  103.  
  104. BOOL EventFunc_REW(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  105.   {
  106.       if (imsg->Class == GADGETDOWN)
  107.     {    StopState(TMData);
  108.         current_time -= 600;
  109.         DrawTimeControl(TMData);
  110.         drag_state = DRAG_REW;
  111.         drag_delay = 3;
  112.     }
  113.  
  114.     return(FALSE);
  115.   }
  116.  
  117. BOOL EventFunc_FF(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  118.   {
  119.       if (imsg->Class == GADGETDOWN)
  120.     {    StopState(TMData);
  121.         current_time += 600;
  122.         DrawTimeControl(TMData);
  123.         drag_state = DRAG_FF;
  124.         drag_delay = 3;
  125.     }
  126.  
  127.     return(FALSE);
  128.   }
  129.  
  130. BOOL EventFunc_CLOCK(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  131. {    struct Window *w = imsg->IDCMPWindow;
  132.  
  133.       if (imsg->Class == GADGETDOWN)
  134.       {    WORD        mx, my;
  135.  
  136.           StopState(TMData);
  137.  
  138.           mx = imsg->MouseX - GadgetInfo_CLOCK.Gadget->LeftEdge;
  139.           my = imsg->MouseY - GadgetInfo_CLOCK.Gadget->TopEdge;
  140.  
  141.           if (my >= 1 && my <= 15)
  142.           {    WORD        selected = (mx - 2) / 15;
  143.             extern WORD    selected_digit;
  144.  
  145.               if (selected >= 0 && selected < 8)
  146.               {    drag_state = DRAG_DIGIT;
  147.                   drag_accum = 0;
  148.                   selected_digit = selected;
  149.                 DrawTimeControl(TMData);
  150.                 ModifyIDCMP(w, w->IDCMPFlags | IDCMP_DELTAMOVE);
  151.                 w->Flags |= WFLG_REPORTMOUSE;
  152.                 SetPointer(w, BlankPointer, 0, 16, -6, 0);
  153.               }
  154.           }
  155.       }
  156.       else if (imsg->Class == GADGETUP || (imsg->Class == MOUSEBUTTONS && imsg->Code == SELECTUP))
  157.       {    selected_digit = -1;
  158.           drag_state = DRAG_NONE;
  159.         DrawTimeControl(TMData);
  160.         ModifyIDCMP(w, w->IDCMPFlags & ~IDCMP_DELTAMOVE);
  161.         w->Flags &=~WFLG_REPORTMOUSE;
  162.         ClearPointer(w);
  163.       }
  164.  
  165.   return(FALSE);
  166.   }
  167.  
  168. BOOL EventFunc_PLAY(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  169.   {
  170.  
  171.     PlayState(TMData);
  172.   return(FALSE);
  173.   }
  174.  
  175. BOOL EventFunc_STOP(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  176.   {
  177.     StopState(TMData);
  178.   return(FALSE);
  179.   }
  180.  
  181. BOOL EventFunc_PAUSE(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  182.   {
  183.         /* REM: This should only be allowed if we are not already stopped... */
  184.  
  185.     PauseState(TMData);
  186.   return(FALSE);
  187.   }
  188.  
  189. BOOL EventFunc_CLIST(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  190.   {    struct Node *n = SelectNode( &CDTList, imsg->Code );
  191.  
  192.     if (n)
  193.         GT_SetGadgetAttrs(GadgetInfo_NEWCON.Gadget, WindowInfo_SELECTCO.Window, NULL,
  194.             GTST_String, n->ln_Name, TAG_DONE );
  195.  
  196.   return(FALSE);
  197.   }
  198.  
  199. BOOL EventFunc_NEWCON(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  200.   {
  201.   return(FALSE);
  202.   }
  203.  
  204. BOOL EventFunc_SELECT(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  205.   {
  206.   NewConductorName( ((struct StringInfo *)GadgetInfo_NEWCON.Gadget->SpecialInfo)->Buffer );
  207.   CloseWindow_SELECTCO(TMData);
  208.  
  209.   return(FALSE);
  210.   }
  211.  
  212. BOOL EventFunc_CANCEL(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  213.   {
  214.   CloseWindow_SELECTCO(TMData);
  215.  
  216.   return(FALSE);
  217.   }
  218.  
  219. BOOL EventFunc_RESETTOZ(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  220.   {
  221.     current_time = 0;
  222.     StopState(TMData);
  223.     DrawTimeControl(TMData);
  224.     return(FALSE);
  225.   }
  226.  
  227. BOOL EventFunc_NTSCNOND(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  228.   {
  229.   return(FALSE);
  230.   }
  231.  
  232. BOOL EventFunc_NTSCDROP(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  233.   {
  234.   return(FALSE);
  235.   }
  236.  
  237. BOOL EventFunc_PAL25FPS(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  238.   {
  239.   return(FALSE);
  240.   }
  241.  
  242. BOOL EventFunc_FILM24FP(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  243.   {
  244.   return(FALSE);
  245.   }
  246.  
  247. extern BOOL positive_only;
  248.  
  249. BOOL EventFunc_POSITIVE(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  250.   {    positive_only = TMData->checked_menu;
  251.     return(FALSE);
  252.   }
  253.  
  254. extern BOOL wait_for_apps;
  255.  
  256. BOOL EventFunc_WAIT(struct TMData *TMData, struct IntuiMessage *imsg, TMOBJECTDATA *tmobjectdata)
  257.   {    wait_for_apps = TMData->checked_menu;
  258.     return(FALSE);
  259.   }
  260.